#!/usr/bin/env tclsh
# $Id: bgplg.tcl 9ce65bed8ef4 2012/08/26 02:14:51 pgurumur $
# Copyright (c) 2012 Prabhu Gurumurthy <pgurumur@gmail.com>
#
# Permission to use, copy, modify, and distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#

# __version__  = "$Revision: 9ce65bed8ef4 $"
# __author__   = "$Author: pgurumur $"
# __modified__ = "$Date: 2012-08-26 02:14:51Z $"

package require http

set progname [lindex [split $argv0 '/'] end]

proc getdata { data } {
   set retval ""
   if {[string length $data] > 0} {
      regexp {<pre>(.*)</pre>} $data matched sub1
      if {[string length $sub1] > 0} {
         set retval [string trim $sub1]
      }
   }

   return $retval
}

proc getv4 { address } {
   set url "http://as9370.bgp4.jp/lg.cgi?query=1&arg"
   append url "=" $address
   set token [::http::geturl $url]
   set data [::http::data $token]
   puts [getdata $data]
}

proc usage {} {
   puts "I am usage"
}

proc optparse { argv argc } {
   global progname
   if {$argc <= 0} {
      usage
   } else {
      array set args {}
      set count 0
      foreach element $argv {
         set args($count) $element
         incr count
      }

      set ipv4 0
      set ipv6 0
      set address ""

      foreach element [array name args] {
         if {$args($element) == "-4" || $args($element) == "--ipv4"} {
            set address $args([incr element])
            set ipv4 1
         } elseif {$args($element) == "-6" || $args($element) == "--ipv6"} {
            set address $args([incr element])
            set ipv6 1
         }
      }

      if {[string length $address] > 0} {
         if {$ipv4 == 1} {
            getv4 $address
         } elseif {$ipv6 == 1} {
            getv6 $address
         }
      }
   }
}

optparse $argv $argc
